from math import *
from PublicReference.base import *


# 武器手套
# class 主动技能(主动技能):
#     def 等效CD(self, 武器类型):
#         if 武器类型 == '手套':
#             return round(self.CD / self.恢复 * 1.05, 1)

class 职业主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []
    data4 = []
    data5 = []
    data6 = []

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数4
        if len(self.data4) >= self.等级 and len(self.data4) > 0:
            等效倍率 += self.data4[self.等级] * self.攻击次数5
        if len(self.data5) >= self.等级 and len(self.data5) > 0:
            等效倍率 += self.data5[self.等级] * self.攻击次数6
        if len(self.data6) >= self.等级 and len(self.data6) > 0:
            等效倍率 += self.data6[self.等级] * self.攻击次数7
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率

# 蓄念炮
class 技能0(被动技能):
    名称 = '蓄念炮'
    所在等级 = 20
    等级上限 = 11
    基础等级 = 1
    # 基础 = 226
    # 成长 = 5
    关联技能 = ['念气波蓄念炮']

    def 加成倍率(self, 武器类型):
        return round(2.26 + 0.05 * self.等级, 5)


# 分身
class 技能1(主动技能):
    名称 = '分身'
    所在等级 = 5
    等级上限 = 20
    基础等级 = 10
    基础个数 = 0
    是否有伤害 = 0
    TP上限 = 0
    关联技能 = ['幻影爆碎']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 0
        else:
            return round(self.基础个数 + self.等级, 5)


# 一觉被动
class 技能2(被动技能):
    名称 = '乱舞千叶花'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.15 + 0.01 * self.等级, 5)

# 二觉被动


class 技能3(被动技能):
    名称 = '心之念意'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.24 + 0.03 * self.等级, 5)


# 念气归元
class 技能4(被动技能):
    名称 = '念气归元'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


# 分身0.01 最后被动倍率=幻爆百分比*100
class 技能5(职业主动技能):
    名称 = '幻影爆碎'
    是否主动 = 0
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    data0 = [int(i*1.182) for i in [0, 431, 474, 518, 562, 606, 650, 694, 736, 781, 825, 868, 913, 957, 999, 1044, 1088, 1131, 1176, 1218, 1262, 1306, 1350, 1395, 1438, 1481, 1526, 1569, 1612, 1658, 1700, 1743, 1789, 1832, 1874, 1921, 1963, 2006, 2051, 2095, 2137, 2181, 2226, 2269, 2313, 2358, 2400, 2444, 2489, 2533, 2576, 2621, 2664, 2707, 2750, 2796, 2839, 2881, 2927, 2970, 3013, 3059, 3101, 3144, 3189, 3233, 3276, 3321, 3364, 3407, 3452]]
    CD = 10
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return super().等效百分比(武器类型)

    # def 等效CD(self, 武器类型):
    #     if 武器类型 == '手套':
    #         return round(self.CD * 1.05, 1)


# 念气波
class 技能6(职业主动技能):
    名称 = '念气波'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 基础 = 593
    # 成长 = 66.8
    data0 = [int(i*1.1822) for i in [0, 658, 725, 792, 859, 926, 991, 1060, 1127, 1192, 1259, 1326, 1393, 1460, 1527, 1594, 1660, 1728, 1795, 1860, 1927, 1994, 2061, 2128, 2195, 2262, 2329, 2395, 2463, 2530, 2596, 2663, 2730, 2796, 2863, 2930, 2997, 3064, 3131, 3198, 3264, 3331, 3398, 3465, 3532, 3599, 3666, 3732, 3799, 3866, 3933, 3999, 4066, 4134, 4200, 4267, 4334, 4401, 4468, 4535, 4602, 4668, 4734, 4802, 4868, 4935, 5002, 5069, 5136, 5203, 5270]]
    CD = 1
    TP成长 = 0.08
    TP上限 = 5


# 念气波蓄念炮
class 技能7(职业主动技能):
    名称 = '念气波蓄念炮'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 基础 = 593
    # 成长 = 66.8
    data0 = [int(i*1.1822) for i in [0, 658, 725, 792, 859, 926, 991, 1060, 1127, 1192, 1259, 1326, 1393, 1460, 1527, 1594, 1660, 1728, 1795, 1860, 1927, 1994, 2061, 2128, 2195, 2262, 2329, 2395, 2463, 2530, 2596, 2663, 2730, 2796, 2863, 2930, 2997, 3064, 3131, 3198, 3264, 3331, 3398, 3465, 3532, 3599, 3666, 3732, 3799, 3866, 3933, 3999, 4066, 4134, 4200, 4267, 4334, 4401, 4468, 4535, 4602, 4668, 4734, 4802, 4868, 4935, 5002, 5069, 5136, 5203, 5270]]
    CD = 3
    TP成长 = 0.08
    TP上限 = 5


# 念气环绕
class 技能8(职业主动技能):
    名称 = '念气环绕'
    所在等级 = 30
    等级上限 = 20
    基础等级 = 10
    # 基础 = 322
    # 成长 = 36.5
    data0 = [int(i*1.0) for i in [0, 359, 395, 431, 469, 505, 542, 578, 614, 651, 688, 724, 761, 797, 834, 870, 906, 942, 979, 1016, 1052, 1088, 1125, 1161, 1197, 1235, 1271, 1307, 1344, 1380, 1418, 1454, 1490, 1527, 1563, 1599, 1636, 1672, 1709, 1745, 1782, 1818, 1854, 1890, 1927, 1963, 2001, 2037, 2073, 2110, 2146, 2182, 2220, 2256, 2293, 2329, 2365, 2402, 2439, 2475, 2511, 2548, 2584, 2620, 2656, 2693, 2730, 2766, 2803, 2839, 2876]]
    CD = 0.5
    TP成长 = 0.10
    TP上限 = 5
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.03 + 0.02 * self.等级, 3)

# 念兽龙虎啸


class 技能9(职业主动技能):
    名称 = '念兽龙虎啸'
    所在等级 = 40
    等级上限 = 30
    基础等级 = 20
    # 基础 = 732
    # 成长 = 0
    # 第1击魔法武器攻击力：<int>%
    data0 = [int(i*1.0) for i in [0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104]]
    攻击次数 = 1
    # 第2击魔法武器攻击力：<int>%
    data1 = [int(i*1.0) for i in [0, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117]]
    攻击次数2 = 1
    # 第3击魔法武器攻击力：<int>%
    data2 = [int(i*1.0) for i in [0, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138]]
    攻击次数3 = 1
    # 第4击魔法武器攻击力：<int>%
    data3 = [int(i*1.0) for i in [0, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157]]
    攻击次数4 = 1
    # 第5击魔法武器攻击力：<int>%
    data4 = [int(i*1.0) for i in [0, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216]]
    攻击次数5 = 1

    CD = 1.0
    TP成长 = 0.10
    TP上限 = 3
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 <= 19:
            return round(1.03 + 0.01 * self.等级, 5)
        else:
            return round(0.84 + 0.02 * self.等级, 5)


class 技能10(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    基础等级 = 100
    关联技能 = ['念兽龙虎啸']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)

# 气玉弹


class 技能11(职业主动技能):
    名称 = '气玉弹'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 基础 = 2876.5
    # 成长 = 323.5
    data0 = [int(i*1.1837) for i in [0, 291, 319, 349, 378, 408, 437, 465, 495, 525, 555, 583, 615, 642, 672, 701, 732, 761, 790, 819, 849, 878, 909, 937, 968, 997, 1027, 1055, 1084, 1115, 1144, 1173, 1204, 1231, 1262, 1290, 1322, 1350, 1380, 1409, 1438, 1468, 1498, 1528, 1557, 1584, 1617, 1644, 1675, 1704, 1733, 1763, 1791, 1822, 1851, 1879, 1911, 1938, 1971, 1998, 2030, 2057, 2086, 2117, 2146, 2177, 2205, 2233, 2264, 2293, 2324]]
    攻击次数 = 11
    CD = 8
    TP成长 = 0.08
    TP上限 = 5

# 狮子吼


class 技能12(职业主动技能):
    名称 = '狮子吼'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 基础 = 5659.1
    # 成长 = 638.9
    data0 = [int(i*1.1820) for i in [0, 6298, 6937, 7576, 8214, 8854, 9491, 10131, 10770, 11410, 12047, 12687, 13326, 13965, 14604, 15243, 15882, 16521, 17160, 17799, 18437, 19076, 19715, 20355, 20993, 21633, 22271, 22910, 23549, 24189, 24828, 25468, 26102, 26741, 27381, 28021, 28660, 29297, 29937, 30577, 31215, 31855, 32494, 33133, 33771, 34409, 35049, 35687, 36326, 36965, 37604, 38243, 38883, 39521, 40160, 40799, 41439, 42079, 42716, 43354, 43993, 44632, 45272, 45912, 46549, 47188, 47828, 48468, 49106, 49746, 50384]]
    CD = 15
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.27
        elif x == 1:
            self.倍率 *= 1.27 + 0.09


# 螺旋念气场
class 技能13(职业主动技能):
    名称 = '螺旋念气场'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 基础 = 9336.7
    # 成长 = 1051.3
    data0 = [int(i*1.1811) for i in [0, 1039, 1144, 1248, 1354, 1457, 1564, 1667, 1773, 1881, 1982, 2089, 2194, 2298, 2403, 2510, 2614, 2719, 2825, 2929, 3035, 3140, 3246, 3351, 3455, 3561, 3667, 3771, 3876, 3982, 4087, 4190, 4295, 4401, 4508, 4612, 4718, 4821, 4925, 5031, 5135, 5244, 5349, 5455, 5557, 5663, 5769, 5873, 5979, 6084, 6188, 6293, 6399, 6505, 6608, 6714, 6818, 6924, 7030, 7135, 7239, 7344, 7449, 7552, 7662, 7763, 7870, 7976, 8081, 8185, 8291]]
    攻击次数 = 10
    # 实际CD为20秒
    演出时间 = 1
    CD = 20.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.13
        elif x == 1:
            self.倍率 *= 1.13 + 0.09


# 念兽雷龙出海
class 技能14(职业主动技能):
    名称 = '念兽雷龙出海'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 基础 = 20572
    # 成长 = 2361
    data0 = [int(i*1.1828) for i in [0, 468, 515, 564, 608, 660, 707, 757, 807, 854, 900, 946, 996, 1046, 1093, 1142, 1188, 1237, 1287, 1334, 1384, 1434, 1479, 1526, 1576, 1625, 1673, 1722, 1769, 1817, 1865, 1915, 1962, 2010, 2057, 2105, 2156, 2203, 2253, 2299, 2347, 2396, 2443, 2494, 2540, 2590, 2638, 2687, 2733, 2782, 2832, 2879, 2926, 2975, 3024, 3072, 3121, 3167, 3217, 3264, 3314, 3360, 3409, 3458, 3505, 3555, 3603, 3651, 3698, 3747, 3795]]
    # 多段攻击次数最大29 爆炸攻击次数 20
    攻击次数 = 29
    data1 = [int(i*1.1828) for i in [0, 468, 515, 564, 608, 660, 707, 757, 807, 854, 900, 946, 996, 1046, 1093, 1142, 1188, 1237, 1287, 1334, 1384, 1434, 1479, 1526, 1576, 1625, 1673, 1722, 1769, 1817, 1865, 1915, 1962, 2010, 2057, 2105, 2156, 2203, 2253, 2299, 2347, 2396, 2443, 2494, 2540, 2590, 2638, 2687, 2733, 2782, 2832, 2879, 2926, 2975, 3024, 3072, 3121, 3167, 3217, 3264, 3314, 3360, 3409, 3458, 3505, 3555, 3603, 3651, 3698, 3747, 3795]]
    攻击次数2 = 20

    秒C = 0
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 等效百分比(self,武器类型):
        if self.秒C == 1:
            # 秒C 多段攻击次数为1 且爆炸攻击力随着剩余时间增加而增加 0.4秒C大概78%左右加成 真的秒C估计80%
            self.攻击次数 = 1
            self.data1 = [int(x*1.787) for x in self.data1]
        return super().等效百分比(武器类型)

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.13
        elif x == 1:
            self.倍率 *= 1.13 + 0.09


# 一觉
class 技能15(职业主动技能):
    名称 = '千莲怒放'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    # 基础 = 34236
    # 成长 = 10337
    data0 = [int(i*1.1835) for i in [0, 7429, 9151, 10876, 12598, 14322, 16044, 17765, 19488, 21211, 22934, 24657, 26380, 28102, 29824, 31548, 33270, 34994, 36717, 38440, 40161, 41885, 43607, 45331, 47053, 48778, 50499, 52222, 53944, 55668, 57390, 59112, 60837, 62558, 64282, 66004, 67727, 69450, 71172, 72895, 74616, 76341, 78063, 79785, 81509, 83231, 84954, 86676, 88400, 90123, 91846, 93568, 95292, 97013, 98738, 100460, 102183, 103906, 105629, 107350, 109074, 110796, 112520, 114243, 115966, 117689, 119410, 121133, 122855, 124580, 126302]]
    攻击次数 = 6
    CD = 145


# 奔雷掌
class 技能16(职业主动技能):
    名称 = '奔雷掌'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    # 基础 = 14808.2
    # 成长 = 1671.8
    #念气波动爆炸攻击力：<data0>%
    data0 = [int(i*1.1808) for i in [0, 1648, 1815, 1983, 2150, 2316, 2483, 2652, 2818, 2985, 3153, 3318, 3487, 3655, 3821, 3988, 4157, 4322, 4490, 4658, 4825, 4992, 5159, 5325, 5492, 5660, 5828, 5993, 6162, 6328, 6496, 6662, 6831, 6996, 7165, 7333, 7499, 7665, 7835, 8000, 8168, 8335, 8502, 8669, 8836, 9005, 9169, 9339, 9506, 9672, 9839, 10009, 10173, 10342, 10509, 10675, 10843, 11010, 11176, 11344, 11511, 11679, 11845, 12013, 12179, 12348, 12513, 12682, 12848, 13015, 13183]]
    攻击次数 = 6
    #最后一击巨大狂龙爆炸攻击力：<data1>%
    data1 = [int(i*1.1808) for i in [0, 6592, 7260, 7929, 8599, 9266, 9933, 10603, 11272, 11940, 12610, 13279, 13947, 14616, 15285, 15953, 16621, 17289, 17959, 18628, 19297, 19966, 20633, 21303, 21973, 22639, 23308, 23978, 24646, 25315, 25983, 26653, 27323, 27990, 28658, 29327, 29996, 30665, 31333, 32002, 32672, 33339, 34009, 34675, 35345, 36014, 36682, 37351, 38021, 38689, 39358, 40026, 40696, 41365, 42031, 42701, 43371, 44037, 44708, 45378, 46045, 46714, 47382, 48052, 48720, 49387, 50057, 50727, 51395, 52064, 52731]]
    攻击次数2 = 1
    CD = 30
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 0
            self.data1 = [int(x*3) for x in self.data1]
            # self.倍率 *= 1.20006759886
            self.CD *= 0.90
        elif x == 1:
            self.攻击次数 = 0
            self.data1 = [int(x*3.22) for x in self.data1]
            # self.倍率 *= 1.28807255611
            self.CD *= 0.90

# 狂狮怒吼


class 技能17(职业主动技能):
    名称 = '狂狮怒吼'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    # 基础 = 17450.5
    # 成长 = 1969.5
    data0 = [int(i*1.1860) for i in [0, 3884, 4277, 4671, 5065, 5460, 5853, 6247, 6639, 7035, 7429, 7822, 8215, 8609, 9003, 9397, 9791, 10185, 10578, 10973, 11369, 11762, 12155, 12551, 12944, 13337, 13731, 14125, 14518, 14913, 15307, 15701, 16094, 16489, 16883, 17276, 17670, 18064, 18459, 18852, 19246, 19640, 20033, 20428, 20822, 21215, 21609, 22004, 22398, 22791, 23185, 23579, 23975, 24368, 24762, 25156, 25549, 25944, 26338, 26731, 27125, 27520, 27913, 28307, 28701, 29093, 29489, 29883, 30277, 30669, 31063]]
    攻击次数 = 5
    CD = 30
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            # self.倍率 *= 1.188
            self.攻击次数 += 6
            self.data0 = [int(x*0.54) for x in self.data0]
            self.CD *= 0.90
        elif x == 1:
            # self.倍率 *= 1.254
            self.攻击次数 += 6
            self.data0 = [int(x*0.57) for x in self.data0]
            self.CD *= 0.90

# 奇袭幻影


class 技能18(职业主动技能):
    名称 = '奇袭幻影'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 16
    data0 = [int(i*1.1857) for i in [0, 10842, 11942, 13044, 14144, 15243, 16343, 17443, 18543, 19644, 20744, 21844, 22945, 24043, 25144, 26245, 27345, 28444, 29544, 30645, 31744, 32843, 33944, 35044, 36145, 37245, 38344, 39444, 40545, 41645, 42745, 43845, 44945, 46047, 47146, 48246, 49346, 50446, 51546, 52647, 53747, 54846, 55945, 57045, 58146, 59246, 60346, 61445, 62546, 63646, 64747]]
    攻击次数 = 4
    CD = 40
    是否有护石 = 1

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.33


# 聚能念气炮
class 技能19(职业主动技能):
    名称 = '聚能念气炮'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    data0 = [int(i*1.1663) for i in [0, 10681, 11766, 12849, 13933, 15016, 16101, 17184, 18268, 19351, 20436, 21520, 22601, 23687, 24769, 25853, 26936, 28021, 29104, 30188, 31270, 32354, 33438, 34521, 35605, 36688, 37773, 38857, 39940, 41025, 42107, 43191, 44274, 45359, 46442, 47526, 48609, 49694, 50778, 51861, 52946, 54029, 55113, 56195, 57280, 58363, 59447, 60530, 61615, 62699, 63782, 64865, 65950, 67031, 68115, 69198, 70283, 71367, 72450, 73535, 74618, 75702, 76784, 77869, 78952, 80036, 81119, 82204, 83287, 84371, 85454]]
    攻击次数 = 5
    CD = 45
    是否有护石 = 1

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.26


# 二觉
class 技能20(职业主动技能):
    名称 = '念帝旋天破'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    # 基础 = 91535
    # 成长 = 27634
    data0 = [int(i*1.1809) for i in [0, 119170, 146803, 174437, 202071, 229705, 257338, 284973, 312606, 340240, 367875, 395509, 423142, 450775, 478408, 506041, 533676, 561309, 588942, 616576, 644210, 671845, 699479, 727112, 754745, 782381, 810014, 837647, 865281, 892915, 920548, 948181, 975814, 1003447, 1031084, 1058717, 1086350, 1113984, 1141618, 1169251, 1196886, 1224519, 1252153, 1279787, 1307420, 1335054, 1362690, 1390323, 1417956, 1445589, 1473222, 1500857, 1528490, 1556123, 1583756, 1611392, 1639025, 1666659, 1694293, 1721926, 1749560, 1777193, 1804828, 1832461, 1860095, 1887729, 1915362, 1942995, 1970628, 1998265, 2025898]]
    CD = 180

# 天雷分身步


class 技能21(职业主动技能):
    名称 = '天雷分身步'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6
    data0 = [int(i*1.2138) for i in [0, 17630, 19419, 21207, 22996, 24784, 26573, 28362, 30150, 31939, 33727, 35516, 37305, 39093, 40882, 42670, 44459, 46248, 48036, 49825, 51613, 53402, 55191, 56979, 58768, 60556, 62345, 64134, 65922, 67711, 69499, 71288, 73077, 74865, 76654, 78442, 80231, 82020, 83808, 85597, 87385, 89174, 90963, 92751, 94540, 96328, 98117, 99906, 101694, 103483, 105271, 107060, 108849, 110637, 112426, 114214, 116003, 117792, 119580, 121369, 123157, 124946, 126735, 128523, 130312, 132100, 133889, 135678, 137466, 139255, 141043]]
    data1 = [int(i*1.2138) for i in [0, 2644, 2912, 3181, 3449, 3717, 3986, 4254, 4522, 4790, 5059, 5327, 5595, 5864, 6132, 6400, 6668, 6937, 7205, 7473, 7742, 8010, 8278, 8546, 8815, 9083, 9351, 9620, 9888, 10156, 10424, 10693, 10961, 11229, 11498, 11766, 12034, 12303, 12571, 12839, 13107, 13376, 13644, 13912, 14181, 14449, 14717, 14985, 15254, 15522, 15790, 16059, 16327, 16595, 16863, 17132, 17400, 17668, 17937, 18205, 18473, 18741, 19010, 19278, 19546, 19815, 20083, 20351, 20619, 20888, 21156]]
    攻击次数2 = 10
    data2 = [int(i*1.2138) for i in [0, 44076, 48547, 53019, 57490, 61962, 66433, 70905, 75376, 79848, 84319, 88791, 93262, 97734, 102205, 106677, 111148, 115620, 120091, 124563, 129034, 133506, 137977, 142449, 146920, 151392, 155863, 160335, 164806, 169278, 173749, 178221, 182692, 187164, 191635, 196107, 200578, 205050, 209521, 213993, 218464, 222936, 227407, 231879, 236350, 240822, 245293, 249765, 254236, 258708, 263179, 267651, 272122, 276594, 281065, 285537, 290008, 294480, 298951, 303423, 307894, 312366, 316837, 321309, 325780, 330252, 334723, 339195, 343666, 348138, 352609]]
    攻击次数3 = 1
    # 🐎测试9hit,游戏写的10hit
    基础 = 71859.4
    成长 = 8113.6
    # 倍率 = 1.10  # 加强
    CD = 60.0

# 三觉


class 技能22(职业主动技能):
    名称 = '念印幻流破'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    # 基础 = 229668
    # 成长 = 69341
    # 倍率 = 1.08  # 加强
    data0 = [int(i*1.1840) for i in [0, 6459, 7957, 9455, 10953, 12451, 13949, 15447, 16945, 18442, 19940, 21438, 22936, 24434, 25932, 27430, 28928, 30426, 31924, 33421, 34919, 36417, 37915, 39413, 40911, 42409, 43907, 45405, 46903, 48401, 49898, 51396, 52894, 54392, 55890, 57388, 58886, 60384, 61882, 63380, 64877, 66375, 67873, 69371, 70869, 72367, 73865, 75363, 76861, 78359, 79857, 81354, 82852, 84350, 85848, 87346, 88844, 90342, 91840, 93338, 94836, 96333, 97831, 99329, 100827, 102325, 103823, 105321, 106819, 108317, 109815]]
    攻击次数 = 5
    data1 = [int(i*1.1840) for i in [0, 6459, 7957, 9455, 10953, 12451, 13949, 15447, 16945, 18442, 19940, 21438, 22936, 24434, 25932, 27430, 28928, 30426, 31924, 33421, 34919, 36417, 37915, 39413, 40911, 42409, 43907, 45405, 46903, 48401, 49898, 51396, 52894, 54392, 55890, 57388, 58886, 60384, 61882, 63380, 64877, 66375, 67873, 69371, 70869, 72367, 73865, 75363, 76861, 78359, 79857, 81354, 82852, 84350, 85848, 87346, 88844, 90342, 91840, 93338, 94836, 96333, 97831, 99329, 100827, 102325, 103823, 105321, 106819, 108317, 109815]]
    攻击次数2 = 5
    data2 = [int(i*1.1840) for i in [0, 64597, 79576, 94555, 109534, 124513, 139492, 154471, 169450, 184429, 199408, 214387, 229366, 244345, 259324, 274303, 289282, 304261, 319240, 334219, 349198, 364178, 379157, 394136, 409115, 424094, 439073, 454052, 469031, 484010, 498989, 513968, 528947, 543926, 558905, 573884, 588863, 603842, 618821, 633800, 648779, 663758, 678737, 693716, 708696, 723675, 738654, 753633, 768612, 783591, 798570, 813549, 828528, 843507, 858486, 873465, 888444, 903423, 918402, 933381, 948360, 963339, 978318, 993297, 1008276, 1023255, 1038234, 1053214, 1068193, 1083172, 1098151]]
    攻击次数3 = 1
    data3 = [int(i*1.1840) for i in [0, 64597, 79576, 94555, 109534, 124513, 139492, 154471, 169450, 184429, 199408, 214387, 229366, 244345, 259324, 274303, 289282, 304261, 319240, 334219, 349198, 364178, 379157, 394136, 409115, 424094, 439073, 454052, 469031, 484010, 498989, 513968, 528947, 543926, 558905, 573884, 588863, 603842, 618821, 633800, 648779, 663758, 678737, 693716, 708696, 723675, 738654, 753633, 768612, 783591, 798570, 813549, 828528, 843507, 858486, 873465, 888444, 903423, 918402, 933381, 948360, 963339, 978318, 993297, 1008276, 1023255, 1038234, 1053214, 1068193, 1083172, 1098151]]
    攻击次数4 = 1
    data4 = [int(i*1.1840) for i in [0, 129194, 159152, 189110, 219068, 249026, 278984, 308942, 338900, 368858, 398817, 428775, 458733, 488691, 518649, 548607, 578565, 608523, 638481, 668439, 698397, 728356, 758314, 788272, 818230, 848188, 878146, 908104, 938062, 968020, 997978, 1027936, 1057894, 1087853, 1117811, 1147769, 1177727, 1207685, 1237643, 1267601, 1297559, 1327517, 1357475, 1387433, 1417392, 1447350, 1477308, 1507266, 1537224, 1567182, 1597140, 1627098, 1657056, 1687014, 1716972, 1746930, 1776889, 1806847, 1836805, 1866763, 1896721, 1926679, 1956637, 1986595, 2016553, 2046511, 2076469, 2106428, 2136386, 2166344, 2196302]]
    攻击次数5 = 1

    CD = 290.0
    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        return 0.0


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能' + str(i) + '())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

归元·气功师·女一觉序号 = 0
归元·气功师·女二觉序号 = 0
归元·气功师·女三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        归元·气功师·女一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        归元·气功师·女二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        归元·气功师·女三觉序号 = 技能序号[i.名称]

归元·气功师·女护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        归元·气功师·女护石选项.append(i.名称)

归元·气功师·女符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        归元·气功师·女符文选项.append(i.名称)


class 归元·气功师·女角色属性(角色属性):
    实际名称 = '归元·气功师·女'
    角色 = '格斗家(女)'
    职业 = '气功师'

    武器选项 = ['手套']

    类型选择 = ['魔法百分比']

    类型 = '魔法百分比'
    防具类型 = '布甲'
    防具精通属性 = ['智力']

    主BUFF = 1.57
    BUFF属强 = 86

    远古记忆 = 0

    # 1 秒C
    雷龙开关 = 0

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):
        self.技能栏[self.技能序号['分身']].基础个数 = self.技能栏[self.技能序号['幻影爆碎']].TP等级

        self.技能栏[self.技能序号['念兽雷龙出海']].秒C = self.雷龙开关

        if self.装备检查('拥抱晨曦之温暖') or self.装备检查('融化黑暗之温暖'):
            self.技能栏[self.技能序号['幻影爆碎']].恢复 -= 0.3

        super().被动倍率计算()

    def 伤害指数计算(self):
        self.光属性强化 += self.BUFF属强
        super().伤害指数计算()


class 归元·气功师·女(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 归元·气功师·女角色属性()
        self.角色属性A = 归元·气功师·女角色属性()
        self.角色属性B = 归元·气功师·女角色属性()
        self.一觉序号 = 归元·气功师·女一觉序号
        self.二觉序号 = 归元·气功师·女二觉序号
        self.三觉序号 = 归元·气功师·女三觉序号
        self.护石选项 = deepcopy(归元·气功师·女护石选项)
        self.符文选项 = deepcopy(归元·气功师·女符文选项)

    def 界面(self):
        super().界面()

        self.BUFF.move(self.BUFF.x() - 18, self.BUFF.y())
        self.BUFF输入.move(self.BUFF输入.x() - 20, self.BUFF输入.y())
        self.BUFF输入.resize(40, 25)

        self.BUFF输入2 = QLineEdit(self.main_frame2)
        self.BUFF输入2.setText(str(self.初始属性.BUFF属强))
        self.BUFF输入2.resize(40, 25)
        self.BUFF输入2.move(self.BUFF输入.x() + 45, self.BUFF输入.y())
        self.BUFF输入2.setStyleSheet(输入框样式)
        self.BUFF输入2.setAlignment(Qt.AlignCenter)

        self.雷龙开关 = QCheckBox('雷龙出海秒C', self.main_frame2)
        self.雷龙开关.resize(100, 20)
        self.雷龙开关.move(335, 440)
        self.雷龙开关.setStyleSheet(复选框样式)
        self.雷龙开关.setChecked(True)

        self.职业存档.append(('BUFF输入2', self.BUFF输入2, 2))
        self.职业存档.append(('雷龙开关', self.雷龙开关, 0))

    def 输入属性(self, 属性, x=0):
        super().输入属性(属性, x)
        try:
            self.BUFF光强 = int(self.BUFF输入2.text())
        except:
            self.BUFF光强 = self.初始属性.BUFF属强

        属性.BUFF属强 = self.BUFF光强

        if self.雷龙开关.isChecked():
            属性.雷龙开关 = 1
